package nz.ac.massey.whatiscomputerscience.core.model;

import io.AgentSerialisable;

import java.util.Collection;

/**
 * This abstract class allows for unsecured protected access to a VectorImage's polygons
 * VectorImages are AgentSerialisable allowing for easy generation and serialisation to and from image-source files
 * 
 * @author Francis Stephens
 */
public interface VectorImage extends AgentSerialisable
{
	/**
	 * TODO this is unpleasantly public
	 * @return A modifiable unordered collection of polygons that describe this image
	 */
	public abstract Collection<MutablePolygon> getMutableImageDescription( );
	
	/**
	 * @return An unordered immutable collection of polygons that describe this image
	 */
	public abstract Collection<Polygon> getImageDescription( );
}